# -*- encoding:utf-8 -*-
# 模型
from sqlalchemy import Column, Integer, String

from app.models.base import db, Base
# from flask_sqlalchemy import SQLAlchemy


# sqlalchemy
# flask框架在sqlalchemy原有的基础上封装了Flask_SQLAlchemy
# WTFORMS验证也被flask封装了Flask_WTFORMS
# flask的路由也是基于werkzeug封装过来的

# 实例化SQLAlchemy, 会有很多个模型文件，db不能单独放在这里，所以要创建一个base.py文件存放db
# db = SQLAlchemy()


class Book(Base):
    # Integer： 类型
    # primary_key： 主键
    # autoincrement：自增长
    id = Column(Integer, primary_key=True, autoincrement=True)
    # nullable：等于False不能为空
    title = Column(String(50), nullable=False)
    author = Column(String(30), default="未名")
    binding = Column(String(20))    # 精装还是拼装
    publisher = Column(String(50))  # 出版社
    price = Column(String(20))  # 价格
    pages = Column(Integer)     # 页数
    pubdate = Column(String(20))    # 出版的年月
    # unique=True：不想要有重复的
    isbn = Column(String(50), nullable=False, unique=True)  # 编号
    summary = Column(String(1000))  # 书箱的简介
    image = Column(String(50))  # 图书的图片

    # MVC M层,面试的时候会问业务逻辑写在哪里才合适，应该回答写在Models层，也就是M层，因为对某个字段的操作
    # ORM（不仅关心数据库如何创建，还关心增删改查等） 对象关系映射 与 code first(更加关心是数据库的表是怎么创建的，它解决的是创建的问题)
    def sample(self):
        # 定义相关的操作方法
        pass










